﻿using Mathmall.Administration.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Mathmall.Administration.Data
{
    public class SkuInfoEntityTypeConfiguration : IEntityTypeConfiguration<SkuInfo>
    {
        public void Configure(EntityTypeBuilder<SkuInfo> builder)
        {
            // 不使用output子句
            builder.ToTable(table => table.UseSqlOutputClause(false));

            builder
                .ToTable(nameof(SkuInfo))
                .ToTable(tableBuilder => tableBuilder.HasComment("sku信息"));

            builder
                .HasKey(skuInfo => skuInfo.SkuInfoID)
                .HasName("SkuInfoID");

            builder
                .Property(skuInfo => skuInfo.SpuID)
                .HasColumnName("SpuID")
                .HasColumnType("int")
                .HasComment("SpuID")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SkuName)
                .HasColumnName("SkuName")
                .HasColumnType("nvarchar(255)")
                .HasComment("Sku名称")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SkuDescription)
                .HasColumnName("SkuDescription")
                .HasColumnType("nvarchar(2000)")
                .HasComment("sku介绍描述")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.CatalogID)
                .HasColumnName("CatalogID")
                .HasColumnType("int")
                .HasComment("所属分类id")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.BrandID)
                .HasColumnName("BrandID")
                .HasColumnType("int")
                .HasComment("品牌id")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SkuDefaultImage)
                .HasColumnName("SkuDefaultImage")
                .HasColumnType("varchar(255)")
                .HasComment("默认图片")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SkuTitle)
                .HasColumnName("SkuTitle")
                .HasColumnType("nvarchar(255)")
                .HasComment("标题")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SkuSubtitle)
                .HasColumnName("SkuSubtitle")
                .HasColumnType("nvarchar(2000)")
                .HasComment("副标题")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.Price)
                .HasColumnName("Price")
                .HasColumnType("money")
                .HasComment("价格")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.SaleCount)
                .HasColumnName("SaleCount")
                .HasColumnType("int")
                .HasComment("销量")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.CreateTime)
                .HasColumnName("CreateTime")
                .HasColumnType("datetime")
                .HasComment("创建时间")
                .IsRequired(false);

            builder
                .Property(skuInfo => skuInfo.LastUpdateTime)
                .HasColumnName("LastUpdateTime")
                .HasColumnType("datetime")
                .HasComment("最后更新时间")
                .IsRequired(false);
        }
    }
}
